aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/reset/[code]/+page.server.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-12-07 22:34:23 -0800
committerAdam Soltys <[email protected]>2023-12-07 22:34:23 -0800
commit8940118dd22c5f2ab680ef8036bcfafecc5696ab (patch)
treea49db92b3ba5f8668cc79ab1dae46e7a09999ba0 /src/routes/(app)/reset/[code]/+page.server.js
parent00e88944abb529d07e189f1181de8a4804f8ae9c (diff)
downloadcoinos-ui-8940118dd22c5f2ab680ef8036bcfafecc5696ab.tar.gz
coinos-ui-8940118dd22c5f2ab680ef8036bcfafecc5696ab.zip
password reset
Diffstat (limited to 'src/routes/(app)/reset/[code]/+page.server.js')
-rw-r--r--src/routes/(app)/reset/[code]/+page.server.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/routes/(app)/reset/[code]/+page.server.js b/src/routes/(app)/reset/[code]/+page.server.js
new file mode 100644
index 00000000..92ad1d0f
--- /dev/null
+++ b/src/routes/(app)/reset/[code]/+page.server.js
@@ -0,0 +1,30 @@
+import { fail, redirect } from "@sveltejs/kit";
+import { fd, post, login } from "$lib/utils";
+
+export const actions = {
+ default: async ({ cookies, params, request }) => {
+ let ip = request.headers.get("cf-connecting-ip");
+ let error;
+
+ let { code } = params;
+ let { password } = await fd(request);
+
+ try {
+ let user = await post("/reset", { code, password });
+ user.password = password;
+
+ try {
+ await login(user, cookies, ip);
+ error = null;
+ } catch (e) {
+ error ||= e.message;
+ }
+
+ if (error) return fail(400, { error });
+ throw redirect(307, `/${user.username}`);
+ } catch (e) {
+ console.log(e.message);
+ return fail(400, { error: e.message });
+ }
+ },
+};